package com.sc.nft.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sc.nft.entity.vo.ExcellentBrandRankingVO;
import com.sc.nft.entity.vo.ecologypool.EcologyPoolDaoRankExcelVO;
import com.sc.nft.entity.vo.ecologypool.EcologyPoolDaoRankPageVO;
import com.sc.nft.entity.vo.ecologypool.EcologyPoolExcellentBrandUploadAllVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * 生态池-品牌榜服务接口
 *
 * @author jinpinhai
 * @description Generator
 * @since 2024-07-17 11:00:11
 */
public interface EcologyPoolDaoRankService {

    /**
     * 品牌榜数据详情
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param rankConfId 品牌榜配置id
     * @return EcologyPoolDaoRankPageVO
     */
    IPage<EcologyPoolDaoRankPageVO> daoRankPage(int pageNo, int pageSize, Long rankConfId);

    /**
     * 导出品牌榜excel
     * @param rankConfId 品牌榜配置id
     * @return EcologyPoolDaoRankExcelVO
     */
    List<EcologyPoolDaoRankExcelVO> daoRankExcel(Long rankConfId);

    /**
     * 优秀品牌池批量分配上传品牌
     * @param file 文件
     * @return EcologyPoolExcellentBrandUploadVo
     * @throws IOException IOException
     */
    EcologyPoolExcellentBrandUploadAllVO excellentBrandUpload(MultipartFile file) throws IOException;

    /**
     * 国库的优秀品牌排行榜批量入库
     * @param uploadVos
     */
    void saveBatchExchequer(List<ExcellentBrandRankingVO> uploadVos);

    /**
     * 排名处理
     * @param configId
     */
    void rankProcessing(Long configId);

}
